/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package BD;

import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import javax.swing.JOptionPane;

/**
 *
 * @author CORE
 */

public class Usuarios extends bd{
    private int id_usuarios = 0;
    private String nome = "";
    private String senha = "";
    private boolean gerente ;
    private boolean caixa; 
    private boolean garcom;
    private boolean pizzaiolo;
    public boolean isGerente() {
        return gerente;
    }

    public boolean isPizzaiolo() {
        return pizzaiolo;
    }

    public void setPizzaiolo(boolean pizzaiolo) {
        this.pizzaiolo = pizzaiolo;
    }

    public void setGerente(boolean gerente) {
        this.gerente = gerente;
    }

    public boolean isCaixa() {
        return caixa;
    }

    public void setCaixa(boolean caixa) {
        this.caixa = caixa;
    }

    public boolean isGarcom() {
        return garcom;
    }

    public void setGarcom(boolean garcom) {
        this.garcom = garcom;
    }
    

    public int getId_usuarios() {
        return id_usuarios;
    }

    public void setId_usuarios(int id_usuarios) {
        this.id_usuarios = id_usuarios;
    }

    public String getNome() {
        return nome;
    }

    public void setNome(String nome) {
        this.nome = nome;
    }

    public String getSenha() {
        return senha;
    }

    public void setSenha(String senha) {
        this.senha = senha;
    }
    

    public boolean incluir() {            
        try {
            if (!estaConectado()) 
                conecta();          
            stmt = getConexao().createStatement();          
//            id_pizzas, id_sabores, tamanho, valor)
            
            sql = "INSERT INTO usuarios (id_usuarios, nome, senha, gerente, caixa,pizzaiolo, garcom) VALUES ((select coalesce(max(id_usuarios)+1,1) from usuarios),"
                    +"'"+ this.getNome()+ "', "                    
                    +"'"+ this.getSenha()+ "', "                    
                    +"'"+ Boolean.toString(this.gerente)+ "', " 
                    +"'"+ Boolean.toString(this.caixa)+ "', "                                        
                    +"'"+ Boolean.toString(this.pizzaiolo)+ "', "                                        
                    +"'"+ Boolean.toString(this.garcom)+ "'); ";                    
            //JOptionPane.showMessageDialog(null, sql);
            stmt.executeUpdate(sql);
            stmt.close();
            //System.out.print(this.sql);
            return true;
            
        } catch (SQLException objErro) {
            JOptionPane.showMessageDialog(null, "Não foi possível executar a Query incluir caixa\n" + objErro.getMessage());
            return false;
        }
    }

    public boolean alterar() {
        try {
            if (!estaConectado()) 
                conecta();          

            stmt = getConexao().createStatement();          
            sql = "UPDATE usuarios "+
                  "SET id_usuarios='"+ Integer.toString(this.getId_usuarios()) + "', "+                                              
                  "    nome='"+ this.getNome()+ "', "+                  
                  "    senha='"+ this.getSenha()+ "', "+                                      
                  "    gerente='"+ Boolean.toString(this.gerente)+ "', "+ 
                  "    caixa='"+ Boolean.toString(this.caixa)+ "', "+                                        
                  "    pizzaiolo='"+ Boolean.toString(this.pizzaiolo)+ "', "+                                        
                  "    garcom='"+ Boolean.toString(this.garcom)+ "' "+
                  " WHERE id_usuarios='"+ Integer.toString(this.getId_usuarios())+"';";
                   
            stmt.executeUpdate(sql);
            stmt.close();
            //System.out.print(this.sql);
            return true;
        } catch (SQLException objErro) {
            JOptionPane.showMessageDialog(null, "Não foi possível executar a Query \n" + objErro.getMessage());
            return false;
        }

    }

    public ResultSet consultar() {
        if (!estaConectado()) {
            conecta();
        }
        try {
            stmt = getConexao().createStatement();
            sql = "SELECT * FROM usuarios  "+
                  " where 1=1 ";
            if(! this.getNome().equals(""))
                sql = sql+ " AND nome = '"+this.nome+"'";
            
            if (this.getId_usuarios()>0 ){
                sql = sql + " AND id_usuarios ='"+Integer.toString(this.getId_usuarios())+"'";
                }
            if(! this.getSenha().equals(""))
                sql = sql+ " AND senha = '"+this.senha+"'";   
                

            rs = stmt.executeQuery(sql);
            return rs;
            
        } catch (SQLException objErro) {
            JOptionPane.showMessageDialog(null, "Não foi possível executar a Query Pizza \n" + objErro.getMessage());
            return null;
        }
        
    }
    public ArrayList<Usuarios> getItens(){
        ArrayList itens = new ArrayList();
        rs = this.consultar();
        try{
            while(rs.next()){
                Usuarios    obj = new Usuarios();
                obj.setId_usuarios(rs.getInt("id_usuarios"));
                obj.setNome(rs.getString("nome"));
                obj.setSenha(rs.getString("senha"));
                obj.setGarcom(rs.getBoolean("garcom"));
                obj.setGerente(rs.getBoolean("gerente"));
                obj.setCaixa(rs.getBoolean("caixa"));
                obj.setPizzaiolo(rs.getBoolean("pizzaiolo"));
                itens.add(obj);               
            }
            stmt.close();
            disconecta();
        }
        catch(SQLException erro){
            msgErro = erro.getMessage();            
            JOptionPane.showMessageDialog(null, erro.getMessage());
        }        
        return itens;
    }
    
    public boolean excluir() {
        if (!estaConectado()) {
            conecta();
        }        
        try {
            stmt = getConexao().createStatement();                      
            sql ="DELETE FROM usuarios "+                  
                 "WHERE id_usuarios = "+ Integer.toString(this.id_usuarios);            
            stmt.execute(sql);                        
            return  true;
        } catch (SQLException objErro) {
            JOptionPane.showMessageDialog(null, "Não foi possível  a Query \n" + objErro.getMessage());
            return false;
        }      

    } 
    public static void main(String []args){
//         sabores sab = new sabores();
         Usuarios us = new Usuarios();         
         us.setNome("walter");
         us.setSenha("12fsfsf3");
         us.setGerente(true);
         us.setCaixa(false);
         us.setGarcom(false);
         us.excluir();
         return;
//         pz.setId_sabores(2);
         //pz.setId_pizzas(1);
         //pz.setTamanho("L");
        // pz.setValor(12);
         //pz.excluir();
//         pz.alterar();
        // pz.incluir();
        /* 
        ArrayList<pizzas> list = new ArrayList<pizzas>();        
        list = pz.getItens();
        for (int i = 0; i < list.size(); i++) {
            System.out.println(list.get(i).getTamanho());
            
        }*/

//        sab.setId_sabores(1);
//        sab.setDescricao("portugueza");
//        sab.incluir();
//        sab.alterar();
//        sab.excluir();
    }

    
}
    
    

